1. Field of the Invention
The invention relates generally to handheld electronic devices and, more particularly, to a handheld electronic device including a cursor positioning device such as, for example, a track ball. The invention also relates to a method of scaling the input pulses from a cursor positioning device such as, for example, a track ball.
2. Background Information
Most cursor positioning devices (e.g., without limitation, a mouse; a track ball; a touchscreen; a tablet; another such pointing or cursor positioning device) have a predetermined speed of response. For example, many track balls have one cursor movement event per pulse from the track ball device. This speed of response can be the proper speed for some applications, but may be too slow or too fast for other applications. The actual count of cursor movement events depends upon the number of pulses per revolution of the track ball and the size of the ball. For example, one known track ball outputs a count of pulses (e.g., without limitation, about 11) for each 360° of rotation. In this example, there is a corresponding positive (i.e., zero to one) transition or a corresponding negative (i.e., one to zero) transition for about every 16.36° of rotation. Another known track ball outputs an audible sound (e.g., a “click” sound) for each of the output pulses.
U.S. Pat. No. 6,252,579 discloses that a computer mouse and other mouse-type devices, such as a track ball, are typically used as a position control device in which displacement of the mouse in a planar workspace is directly correlated to displacement of a cursor displayed on a screen. This displacement correlation may not be a one-to-one correspondence, since the cursor position may be scaled according to a constant mapping from the mouse position (e.g., the mouse may be moved a distance of one inch on a mouse pad which causes the controlled cursor to move four inches across the screen). In most cases, small movements of the mouse are scaled to large motions of the cursor on the screen to allow the user to easily point to targets in all areas of the screen. The user can typically manually change the scaling or “pointer speed” of the cursor to a desired level, which is the ratio or scaling factor of cursor movement to mouse movement, using menus provided in the operating system or application program.
U.S. Pat. No. 6,252,579 also discloses that scaled cursor movement in a graphical user interface (GUI) works well for coarse cursor motion, which is the broad, sweeping motion of the cursor that brings the cursor from one global area on the screen to another. Accuracy of cursor motion is not critical for coarse motion, but speed of the cursor is—ideally, the cursor traverses the desired distance on the screen quickly and efficiently. For such tasks, it is valuable for the cursor to move a large distance with small motions of the physical mouse hardware. However, a problem occurs in mouse-type devices when the user wishes to move the cursor a short distance or in small increments (“fine positioning”). For tasks in which accurate positioning of the cursor is needed, such as target acquisition tasks, the large scaling of mouse movement to cursor movement is inadequate or even harmful. For example, the user may wish to move the cursor onto a GUI target such as an icon or menu item. If very small motions of the mouse result in large cursor motion, then the user may simply lack the manual dexterity to acquire the target.
Mouse “ballistics” or “ballistic tracking” is typically used to alleviate the scaling problem for fine positioning of the cursor. Ballistics refers to the technique of varying the scaling between motion of a physical mouse and motion of a displayed cursor depending upon the velocity of the mouse in its workspace. The assumption is that if the user is moving the mouse very quickly, the user is likely performing a “coarse motion” task on the screen, and therefore the mouse driver scales small motions of the mouse to large motions of the cursor. Conversely, if the user is moving the mouse very slowly, then the user is likely performing a fine positioning task on the screen, and the mouse driver scales small motions of the mouse to small motions of the cursor. See U.S. Pat. Nos. 4,734,685; and 5,195,179. See, also, U.S. Pat. No. 5,477,508; and U.S. Patent Application Publication No. 2004/0233167.
U.S. Pat. No. 6,252,579 further discloses an enhanced cursor control algorithm in which the distance between a current mouse position and a workspace limit in the direction of the mouse's movement, and the distance between the cursor position and the screen limit corresponding to that physical limit are determined. This allows a local microprocessor to calculate a new scaling factor in real time for all positions of the mouse in its workspace, not just for regions close to the edge of the workspace. For example, the microprocessor examines the distance between the current mouse position and the workspace limit, and the distance between the cursor and the screen limits, and scales the cursor position accordingly. In one example, three “cursor speeds” (i.e., cursor scalings) are provided: coarse, fine, and intermediate. Coarse and fine speeds are constant mappings of cursor to mouse position allowing different degrees of control. However, the intermediate speed can use the enhanced cursor control algorithm to vary the scaling factor according to the offset between local and display frames. In an alternative embodiment, the microprocessor determines the distance of the mouse and cursor to limits on all sides, such that four different scaling factors can be stored and the one that corresponds to the cursor's direction is used.
There remains the need for a comfortable and intuitive user interface employing a cursor control device, such as a track ball. Accordingly, there is room for improvement in handheld electronic devices including a cursor positioning device such as, for example, a track ball. There is also room for improvement in methods of scaling input pulses from a cursor positioning device.